﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.EnlaceDatos.SqlServer;
using vudu.Logica.Excepciones;

namespace vudu.PaginasWeb.G8Escuela
{
    public partial class ConsultarEscuelaProfesor : System.Web.UI.Page
    {
        private Universidad universidad = new Universidad();
        
        protected void Page_Load(object sender, EventArgs e)
        {
            LlenarCabecerasTablaInformacionEscuela();
            CargarInformacionTablaEscuelas();
           // Al integrar, por favor descomentar lo siguiente
            string miRol = (string)Session["rol"];
            if (miRol != "Profesor")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
        }

        public void LlenarCabecerasTablaInformacionEscuela()
        {
            // Creamos un nuevo registro para la tabla
            TableRow registroTabla = new TableRow();
            ConsultarEscuelas.Rows.Add(registroTabla);
            // Creamos una celda para esta tabla.
            TableCell celdaTabla = new TableCell();
            celdaTabla.Width = 200;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            // Creamos un WebControl de tipo "LABEL" y se lo aderimos a la celda.
            System.Web.UI.WebControls.Label labelCabecera = new Label();
            labelCabecera.Text = "Escuela";
            celdaTabla.Controls.Add(labelCabecera);

            //Repetimos el procedimiento hasta llenar nuestra tabla.
            celdaTabla = new TableCell();
            celdaTabla.Width = 100;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            labelCabecera = new Label();
            labelCabecera.Text = "Director";
            celdaTabla.Controls.Add(labelCabecera);

            celdaTabla = new TableCell();
            celdaTabla.Width = 200;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            labelCabecera = new Label();
            labelCabecera.Text = "Opcion";
            celdaTabla.Controls.Add(labelCabecera);

        }
        public void CargarInformacionTablaEscuelas()
        {
            Escuela escuela = new Escuela();
            SqlServerEscuela _escuelaSQL = new SqlServerEscuela(); 
            string _nombre;

            //Al integrar por favor eliminar lo siguiente
            //int _idprofe = 4097234;
            //Usuario.Text = "Profesor: Nelson Rodriguez";

            //Cuando se integre descomentar por favor
            Profesor _profesor = (Profesor)Session["Profesor"];
            int _idprofe = (int)_profesor.Cedula;
            Usuario.Text = "Profesor: " + _profesor.Nombre + _profesor.Apellido;

            
            _nombre = _escuelaSQL.ObtenerUniversidadProfesor(_idprofe);
            //Preguntamos si hay escuelas en la universidad
            if (escuela.ConsultarListaEscuela(_nombre).Count != 0)
            {
                try
                {
                    foreach (Escuela escuelita in escuela.ConsultarListaEscuela(_nombre))
                    {
                        // Creamos un nuevo registro para la tabla
                        TableRow registroTabla = new TableRow();
                        ConsultarEscuelas.Rows.Add(registroTabla);

                        // Creamos una celda para esta tabla.
                        TableCell celdaTabla = new TableCell();
                        registroTabla.Cells.Add(celdaTabla);
                        // Creamos un WebControl de tipo "LABEL" y se lo aderimos a la celda.
                        System.Web.UI.WebControls.Label labelRegistro = new Label();
                        labelRegistro.Text = escuelita.NombreEscuela;
                        celdaTabla.Controls.Add(labelRegistro);

                        celdaTabla = new TableCell();
                        celdaTabla.HorizontalAlign = HorizontalAlign.Center;
                        registroTabla.Cells.Add(celdaTabla);
                        // Creamos un WebControl de tipo "LABEL" y se lo aderimos a la celda.
                        labelRegistro = new Label();
                        labelRegistro.Text = escuelita.DirectorEscuela;
                        celdaTabla.Controls.Add(labelRegistro);

                        celdaTabla = new TableCell();
                        celdaTabla.HorizontalAlign = HorizontalAlign.Center;
                        registroTabla.Cells.Add(celdaTabla);
                        // Creamos un WebControl de tipo "BUTTON" y se lo aderimos a la celda.
                        System.Web.UI.WebControls.HyperLink buttonVerEscuela = new HyperLink();
                        buttonVerEscuela.Text = "Ver Escuela";
                        buttonVerEscuela.CssClass = "miga";
                        buttonVerEscuela.NavigateUrl = "VerUnaEscuelaProfesor.aspx?cod=" + escuelita.IdEscuela;

                        celdaTabla.Controls.Add(buttonVerEscuela);
                    }
                }
                catch (ConexionExeption)
                {
                    MensajeError.Text = "Operacion Fallida : No se pudo establecer conexion con la Base de Datos";
                    MensajeError.CssClass = "transaccionFallida";
                    MensajeError.Visible = true;
                }
                catch (TransaccionFallidaExeption)
                {
                    MensajeError.Text = "Operacion Fallida : No se pudo realizar la transaccion";
                    MensajeError.CssClass = "transaccionFallida";
                    MensajeError.Visible = true;
                }

                catch (Exception)
                {
                    MensajeError.Text = "Operacion Fallida : ocurrio un error inesperado";
                    MensajeError.CssClass = "transaccionFallida";
                    MensajeError.Visible = true;
                }
            }
                //Si no hay escuelas activas mostramos mensaje de error
            else
            {
                MensajeError.Text = "Actualmente no hay escuelas activas en la " + _nombre;
                MensajeError.CssClass = "transaccionFallida";
                MensajeError.Visible = true;
            }
        }
    }

}